<?php
namespace Admin\Controller;
use Think\Controller;
class IndexController extends Controller {

    public function _initialize(){
        if(!session('?admin')){
            $this->error('当前用户没有权限！',U('Login/login'));
            exit;
        }
    }
    public function index(){
        echo "this is admin module!";
    }
    function userList(){
        $userModel = M('Users');
        $local_users=$userModel->order('id desc')->select();
        //$users 是函数中的局部变量，在外面是不可见的
        $this->users=$local_users;
        $this->display();
        //把当前对象的所有全局变量传递到对应的视图中，
        //可以使用assign方法限制传递的全局变量

    }
    function bsuserlist(){
//        $userModel = M('Users');
//        $local_users=$userModel->order('id desc')->select();
//        //$users 是函数中的局部变量，在外面是不可见的
//        $this->users=$local_users;//users给View模块提供引用，用来调用数据
//        $this->display();
        //把当前对象的所有全局变量传递到对应的视图中，
        //可以使用assign方法限制传递的全局变量
        $User = M('Users'); // 实例化User对象
        $count = $User->count();// 查询满足要求的总记录数
        $Page = new \Think\Page($count,5);// 实例化分页类 传入总记录数和每页显示的记录数(25)
        $show = $Page->show();// 分页显示输出
// 进行分页数据查询 注意limit方法的参数要使用Page类的属性
        $list = $User->order('id desc')->limit($Page->firstRow.','.$Page->listRows)->select();
//        $this->users=$list;//赋值全局变量
//        $this->page=$show;
        $this->assign('users',$list);// 赋值数据集（相当于赋值全局变量）
        $this->assign('page',$show);// 赋值分页输出（相当于赋值全局变量）
        $this->display(); // 输出模板

    }
    function users(){
        $userModel = M('Users');
        $local_users=$userModel->order('id desc')->select();
        //$users 是函数中的局部变量，在外面是不可见的
        $this->users=$local_users;
        $this->display();
        //把当前对象的所有全局变量传递到对应的视图中，
        //可以使用assign方法限制传递的全局变量
    }

    function del($id){
        //生成一个users模型
        $userModel=M('Users');
        //调用模型的方法删除数据
        if($userModel->delete($id)){
            //删除成功
            $this->success('删除成功');
        }else{
            //删除失败
            $this->error('删除失败');
        }
        //delete from think_users where id=$id
    }

    function setstar($id){
        $userModel=M('Users');
        //生成一个users模型（模型实例化）
        $data['isstar']=1;
        if($userModel->where("id=$id")->save($data)){
            $this->success('修改成功');
        }else{
            $this->error('修改失败');
        }
    }
    function delstar($id){
        $userModel=M('Users');
        //生成一个users模型（模型实例化）
        $userModel->isstar=0;
        $userModel->isfirst=0;
        $userModel->id=$id;
        if($userModel->save()){
            $this->success('取消明星作者成功！');
        }else{
            $this->error('取消明星作者失败');
        }
    }

    function setfirst($id){
        $userModel=M('Users');
        //生成一个users模型（模型实例化）
        $data['isfirst']=1;

        if($userModel->where("id=$id")->save($data)){
            $this->success('修改成功');
        }else{
            $this->error('修改失败');
        }
        $this->setstar($id);
    }
    function delfirst($id){
        $userModel=M('Users');
        //生成一个users模型（模型实例化）
        $data['isfirst']=0;

        if($userModel->where("id=$id")->save($data)){
            $this->success('修改成功');
        }else{
            $this->error('修改失败');
        }
    }

    function updateUserInfo($id){
        $userModel=D('Users');
        $this->user=$userModel->find($id);//user给View模块提供引用，用来调用数据
        $this->display();
        //查询到的用户信息user传递给模板updateUserInfo.html
    }
    function update(){
        //获取updateUserInfo界面提交过来的数据，修改数据库
//       $date=I(post.)
//       $date=$_POST
//       create();利用$_POST数据创建一个对象

        $userModel=M('Users');
        $userModel->create();
        if($_FILES['photo']['error']==0){//判断文件上传是否成功
            $photoinfo=$this->upload();//将临时文件保存到指定位置
            $userModel->photo=$photoinfo['photo']['savename'];
        }

        if($userModel->save()){
            $this->success('修改用户成功！','users');
        }else{
            $this->error('修改用户失败！');
        }
    }
    public function upload(){
        $upload = new \Think\Upload();// 实例化上传类
        $upload->maxSize = 3145728 ;// 设置附件上传大小
        $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
        $upload->rootPath = './Public/Uploads/photo/'; // 设置附件上传根目录
//      $upload->savePath = ''; // 设置附件上传（子）目录
        $upload->autoSub=false;//不生成子目录
// 上传文件
        $info = $upload->upload();
        if(!$info) {// 上传错误提示错误信息
            $this->error($upload->getError());
        }else{// 上传成功
            return $info;
        }
    }
    function img(){//图片缩放
            $photoinfo=$this->upload();
            $filePath='./Public/Uploads/photo/';
            $oldFileName=$photoinfo['photo']['savename'];
            $oldFileFullName=$filePath."\\".$oldFileName;
            $newFileName='thumb_'.$oldFileName;
            $newFileFullName=$filePath."\\".$newFileName;

            $image = new \Think\Image();
            $image->open($oldFileFullName);
            $image->thumb(100,100)->save($newFileFullName);
            return $newFileName;
    }
    public function addUser(){
//     1.接收从add.html界面提交过来的用户信息
//       $date=I(post.)
//       $date=$_POST
//       create();利用$_POST数据创建一个对象
//     2.注意：单独处理图像的上传 以及photo字段的赋值
//     3.保存到数据库 add（）
        $userModel=D('Users');//采用D方法才会自动验证
        if($userModel->create()){
//            if($_FILES['photo']['error']==0){//判断文件上传是否成功
//                $photoinfo=$this->upload();//将临时文件保存到指定位置
//                $userModel->photo=$photoinfo['photo']['savename'];
//            }
            if($_FILES['photo']['error']==0){
                $fileName=$this->img();
                $userModel->photo=$fileName;
            }
            if($userModel->add()){
                $this->success('添加用户成功！','users');
            }else{
                $this->error('添加！');
            }
        }else{
            $this->error($userModel->getError());
        }


    }
}